package com.seckill.page.process;

import freemarker.template.Configuration;
import freemarker.template.Template;
import org.apache.commons.io.FileUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.ui.freemarker.FreeMarkerTemplateUtils;

import java.io.File;
import java.util.Map;

/**
 * @program: seckill-parent
 * @description: 生成页面
 * @author: zhanghz001
 * @create: 2021-06-25 09:18
 **/
public class ZhzBaseProcess {
    @Autowired
    private Configuration configuration;
    
    @Value("${filepath}")
    private String filepath;
    
    public String filepath() {
        return filepath;
    }
    
    /**
     * Configuration：配置对象
     * 1、指定模板对象
     * 2、生成的文件路径在哪里
     * 3、指定数据模型
     */
    public void writePage(Map<String, Object> dataMap) throws Exception {
        //指定模板对象
        String templateName = dataMap.get("templateName").toString();
        Template template = configuration.getTemplate(templateName);
        //指定数据模型
        String content = FreeMarkerTemplateUtils.processTemplateIntoString(template, dataMap);
        //生成文件路径在哪里
        String filename = dataMap.get("filename").toString();
        
        //生成文件
        FileUtils.writeStringToFile(new File(filepath, filename), content);
        
    }
}
